Lab Templates/Lab Template - WAF for GCP Coffeeshop/sql-injection-demo/lib/helpers.php (50 lines of code) (raw):

<?php function setup() { if (session_status() == PHP_SESSION_NONE) { session_start(); } if (!isset($_SESSION['user_id'])) return false; require_once('connectdb.php'); return true; } function current_user() { if (!setup()) return false; $user_id = $_SESSION['user_id']; // don't do it like that in productive systems // session variables can be changed and thus sql // injection is possible here aswell! $query = "SELECT * from users WHERE id=$user_id"; $db = connectdb(); $result = mysqli_multi_query($db, $query); if ($result) { $result = mysqli_use_result($db); } if ($result) { $user = mysqli_fetch_array($result, MYSQLI_ASSOC); mysqli_close($db); return $user; } mysqli_close($db); return false; } function logged_in() { return setup(); } function is_admin() { if (!setup()) return false; $user_id = $_SESSION['user_id']; // don't do it like that in productive systems // session variables can be changed and thus sql // injection is possible here aswell! $query = "SELECT * from users WHERE id=$user_id"; $db = connectdb(); $result = mysqli_multi_query($db, $query); if ($result) { $result = mysqli_use_result($db); } if ($result) { $user = mysqli_fetch_array($result, MYSQLI_ASSOC); mysqli_close($db); return $user['role'] == 'admin'; } mysqli_close($db); return false; }